FSx for NetApp ONTAP でカスタムスナップショットポリシーを設定してみた
コーヒーが好きな emi です。
FSx for NetApp ONTAP でカスタムスナップショットポリシーを設定してみました。
FSx for NetApp ONTAP を新規作成する場合、カスタムスナップショットポリシーをマネジメントコンソールから作成することはできません。カスタムスナップショットポリシーを作成するには、ONTAP CLI または ONTAP REST API を使う必要があります。
注意
スナップショットは ボリュームごとに最大 1,023 個 まで保存できます。それ以上は保存できません。
背景
FSx for NetApp ONTAP ではボリュームのバックアップの他、スナップショットを取得することができます。
ボリュームのバックアップは 1 時間ごとにしか取得できなかったり、リストアする際は別のボリュームを新規作成して切り替える必要がありやや時間がかかる一方、スナップショットは 5 分間隔・10 分間隔など高頻度で取得可能でリストアもコマンドを実行するだけで比較的高速に実施できます。
目的・用途に応じてバックアップもスナップショットも両方設定することが望ましいのですが、詳細は以下のブログをご参照ください。
スナップショットを自動取得するためにスナップショットポリシーを設定することができます。スナップショットポリシーはマネジメントコンソールから以下の 4 種類が選択できるようになっています。
- Default
- 毎時 6 世代、日次 2 世代、週次 2 世代
- Default-1weekly
- 毎時 6 世代、日次 2 世代、週次 1 世代
- None
- スナップショットは取得しない
- カスタムポリシー
- ユーザー指定
カスタムポリシーを選択すると、カスタムスナップショットポリシー名の入力を求められます。
しかし、新規作成の場合「カスタムスナップショットポリシーがありません」というエラーでボリュームの作成に失敗します。
カスタムスナップショットポリシーを作成するには、ONTAP CLI または REST API を使う必要があります。
構成図
以下のような構成で検証を実施しました。Systems Manager(SSM)フリートマネージャーで Windows Server に RDP 接続します。FSx for NetApp ONTAP は Windows Server に iSCSI マウントされた状態です。 FSx for NetApp ONTAP には以下二つのボリュームを作成してあります。
- ボリューム 1:fsxn_vol1
- ボリューム 2:fsxn_vol2
FSx for NetApp ONTAP を Windows Server に iSCSI マウントする方法は以下のブログを参照ください。
Windows Serevr にインストールした Teraterm から FSx for NetApp ONTAP に SSH 接続して ONTAP CLI を実行します。
Windows Server から FSx for NetApp ONTAP に SSH 接続する方法は以下のブログをご参照ください。
スナップショットジョブスケジュールの確認
カスタムスナップショットポリシーを作成するには、事前にスナップショットジョブスケジュールが必要です。
デフォルトで容易されているスナップショットジョブスケジュールもあります。一度デフォルトのスナップショットジョブスケジュールを表示してみてみましょう。
- 実行コマンド
job schedule cron show
▼実行結果
FsxId003039c51be2092f8::> job schedule cron show Cluster Vserver Name Description ------- -------- ----------- -------------------------------------------------- FsxId003039c51be2092f8 FsxId003039c51be2092f8 10min @:00,:10,:20,:30,:40,:50 12-hourly @0:15,12:15 5min @:00,:05,:10,:15,:20,:25,:30,:35,:40,:45,:50,:55 6-hourly @0:15,6:15,12:15,18:15 8hour @2:15,10:15,18:15 daily @0:10 hourly @:05 monthly 1@0:20 pg-15-minutely @:10,:25,:40,:55 pg-6-hourly @3:03,9:03,15:03,21:03 pg-daily @0:10 pg-daily-set2 @6:25 pg-daily-set3 @12:40 pg-daily-set4 @18:55 pg-hourly @:07 pg-hourly-set2 @:22 pg-hourly-set3 @:37 pg-hourly-set4 @:52 pg-remote-15-minutely @:00,:15,:30,:45 pg-remote-6-hourly @3:08,9:08,15:08,21:08 pg-remote-daily @0:15 pg-remote-hourly @:12 pg-remote-weekly Sun@0:20 pg-weekly Sun@0:15 pg-weekly-set2 Tue@4:30 pg-weekly-set3 Thu@10:44 pg-weekly-set4 Sat@16:59 weekly Sun@0:15 28 entries were displayed. FsxId003039c51be2092f8::>
例えば 12-hourly @0:15,12:15
は 12 時間ごとにスナップショットを取得するためのジョブスケジュールです。毎日 0:15 と 12:15 の二回スナップショットを取得します。
5min @:00,:05,:10,:15,:20,:25,:30,:35,:40,:45,:50,:55
は 5 分ごとにスナップショットを取得するためのジョブスケジュールです。毎時間 0 分、 5 分、10 分… 55 分という間隔でスナップショットを取得します。
カスタムスナップショットジョブスケジュールの作成
デフォルトで準備されているスナップショットジョブスケジュールを使うこともできますが、今回はカスタムのスナップショットジョブスケジュールを作成します。コマンド構文は以下のようになります。
- コマンド構文 Create a Snapshot job schedule
job schedule cron create -name job_name -month month -dayofweek day_of_week -day day_of_month -hour hour -minute minute
今回は 10 分毎にスナップショットを取得するジョブスケジュール emiki_10min
と、1 時間毎にスナップショットを取得するジョブスケジュール emiki_hourly
の二つを作成します。スナップショットの取得タイミングは以下の表のようなイメージになります。
10 分毎のジョブスケジュール作成コマンド
- 10 分毎のジョブスケジュール作成コマンド例
job schedule cron create -name emiki_10min -minute 0,10,20,30,40,50
▼実行結果
FsxId003039c51be2092f8::> job schedule cron create -name emiki_10min -minute 0,10,20,30,40,50 FssxId003039c51be2092f8::>
毎時 5 分のジョブスケジュール作成コマンド
- 毎時 5 分のジョブスケジュール作成コマンド例
job schedule cron create -name emiki_hourly -minute 5
▼実行結果
FsxId003039c51be2092f8::> job schedule cron create -name emiki_hourly -minute 5 FsxId003039c51be2092f8::>
意図した値でスナップショットジョブスケジュールが作成されたか確認
FsxId003039c51be2092f8::> job schedule cron show Cluster Vserver Name Description ------- -------- ----------- -------------------------------------------------- FsxId003039c51be2092f8 FsxId003039c51be2092f8 10min @:00,:10,:20,:30,:40,:50 12-hourly @0:15,12:15 5min @:00,:05,:10,:15,:20,:25,:30,:35,:40,:45,:50,:55 6-hourly @0:15,6:15,12:15,18:15 8hour @2:15,10:15,18:15 daily @0:10 emiki_10min @:00,:10,:20,:30,:40,:50 emiki_hourly @:05 hourly @:05 monthly 1@0:20 pg-15-minutely @:10,:25,:40,:55 pg-6-hourly @3:03,9:03,15:03,21:03 pg-daily @0:10 pg-daily-set2 @6:25 pg-daily-set3 @12:40 pg-daily-set4 @18:55 pg-hourly @:07 pg-hourly-set2 @:22 pg-hourly-set3 @:37 pg-hourly-set4 @:52 pg-remote-15-minutely @:00,:15,:30,:45 pg-remote-6-hourly @3:08,9:08,15:08,21:08 pg-remote-daily @0:15 pg-remote-hourly @:12 pg-remote-weekly Sun@0:20 pg-weekly Sun@0:15 pg-weekly-set2 Tue@4:30 pg-weekly-set3 Thu@10:44 pg-weekly-set4 Sat@16:59 weekly Sun@0:15 30 entries were displayed. FsxId003039c51be2092f8::>
emiki_10min @:00,:10,:20,:30,:40,:50
、emiki_hourly @:05
の部分が作成したスナップショットジョブスケジュールです。
カスタムスナップショットポリシーの作成
- コマンド構文 Create a Snapshot policy
volume snapshot policy create -vserver SVM -policy policy_name -enabled true|false -schedule1 schedule1_name -count1 copies_to_retain -prefix1 snapshot_prefix -snapmirror-label1 snapshot_label … -schedule1 schedule5_name -count5 copies_to_retain-prefix5 snapshot_prefix -snapmirror-label5 snapshot_label
今回は以下のようにカスタムスナップショットポリシーを作成します。
10 分毎に取得するスナップショットを 30 世代(5 時間分)、1 時間毎に取得するスナップショットを 5 世代(5 時間分)保持するカスタムスナップショットポリシーです。
意図したスナップショットが取得できているか確認する際の目印になりますので、プレフィックスは分かりやすいものを設定することをお勧めします。
- policy_name(スナップショットポリシー名):emiki_snapshot_policy_30_per_minute_and_5_hourly
- schedule1_name(スケジュール1):emiki_10min
- copies_to_retain1(保持するコピー数):30
- snapshot_prefix1(スナップショット保存時につけるプレフィックス):emiki_10min
- schedule2_name:emiki_hourly
- copies_to_retain2:5
- snapshot_prefix2:emiki_hourly
-
実行コマンド
volume snapshot policy create -policy emiki_snapshot_policy_30_per_minute_and_5_hourly -enabled true -schedule1 emiki_10min -count1 30 -prefix1 emiki_10min -schedule2 emiki_hourly -count2 5 -prefix2 emiki_hourly
▼実行結果
FsxId003039c51be2092f8::> volume snapshot policy create -policy emiki_snapshot_policy_30_per_minute_and_5_hourly -enabled true -schedule1 emiki_10min -count1 30 -prefix1 emiki_10min -schedule2 emiki_hourly -count2 5 -prefix2 emiki_hourly FsxId003039c51be2092f8::>
意図した値でスナップショットポリシーが作成されたか確認
- 実行コマンド
volume snapshot policy show
▼実行結果
FsxId003039c51be2092f8::> volume snapshot policy show Vserver: FsxId003039c51be2092f8 Number of Is Policy Name Schedules Enabled Comment ------------------------ --------- ------- ---------------------------------- default 3 true Default policy with hourly, daily & weekly schedules. Schedule Count Prefix SnapMirror Label Retention Period -------------- ----- ------------- ------------------ ------------------ hourly 6 hourly - 0 seconds daily 2 daily daily 0 seconds weekly 2 weekly weekly 0 seconds default-1weekly 3 true Default policy with 6 hourly, 2 daily & 1 weekly schedule. Schedule Count Prefix SnapMirror Label Retention Period -------------- ----- ------------- ------------------ ------------------ hourly 6 hourly - 0 seconds daily 2 daily - 0 seconds weekly 1 weekly - 0 seconds emiki_snapshot_policy_30_per_minute_and_5_hourly 2 true - Schedule Count Prefix SnapMirror Label Retention Period -------------- ----- ------------- ------------------ ------------------ emiki_10min 30 emiki_10min - 0 seconds emiki_hourly 5 emiki_hourly - 0 seconds none 0 false Policy for no automatic snapshots. Schedule Count Prefix SnapMirror Label Retention Period -------------- ----- ------------- ------------------ ------------------ - - - - - 4 entries were displayed. FsxId003039c51be2092f8::>
ハイライトの箇所が、作成したカスタムスナップショットポリシーです。
現在ボリュームに割り当たっているスナップショットポリシーを確認
現在ボリュームに割り当たっているスナップショットポリシーを確認しておきます。
デフォルト設定で FSx for NetApp ONTAP を作成している場合、ボリュームには default
というスナップショットポリシーが割り当たっているはずです。
- コマンド構文
volume show -volume vol_name -fields snapshot-policy
Volume1 のスナップショットポリシー確認
- 実行コマンド
volume show -volume fsxn_vol1 -fields snapshot-policy
▼実行結果
FsxId003039c51be2092f8::> volume show -volume fsxn_vol1 -fields snapshot-policy vserver volume snapshot-policy --------------- --------- --------------- sample-fsxn-svm fsxn_vol1 default FsxId003039c51be2092f8::>
Volume2 のスナップショットポリシー確認
- 実行コマンド
volume show -volume fsxn_vol2 -fields snapshot-policy
▼実行結果
FsxId003039c51be2092f8::> volume show -volume fsxn_vol2 -fields snapshot-policy vserver volume snapshot-policy --------------- --------- --------------- sample-fsxn-svm fsxn_vol2 default FsxId003039c51be2092f8::>
fsxn_vol1
も fsxn_vol2
も、default
というスナップショットポリシーが割り当たっているのが分かります。
作成したカスタムスナップショットポリシーに変更する(途中 y 入力)
作成したカスタムスナップショットポリシーに変更します。
- コマンド構文
volume modify -volume vol_name -snapshot-policy policy_name
Volume1 にスナップショットポリシー付与
- 実行コマンド
volume modify -volume fsxn_vol1 -snapshot-policy emiki_snapshot_policy_30_per_minute_and_5_hourly
▼実行結果
FsxId003039c51be2092f8::> volume modify -volume fsxn_vol1 -snapshot-policy emiki_snapshot_policy_30_per_minute_and_5_hourly Warning: You are changing the Snapshot policy on volume "fsxn_vol1" to "emiki_snapshot_policy_30_per_minute_and_5_hourly". Snapshot copies on this volume that do not match any of the prefixes of the new Snapshot policy will not be deleted. However, when the new Snapshot policy takes effect, depending on the new retention count, any existing Snapshot copies that continue to use the same prefixes might be deleted. See the 'volume modify' man page for more information. Do you want to continue? {y|n}: y Volume modify successful on volume fsxn_vol1 of Vserver sample-fsxn-svm. FsxId003039c51be2092f8::>
Volume2 にスナップショットポリシー付与
- 実行コマンド
volume modify -volume fsxn_vol2 -snapshot-policy emiki_snapshot_policy_30_per_minute_and_5_hourly
▼実行結果
FsxId003039c51be2092f8::> volume modify -volume fsxn_vol2 -snapshot-policy emiki_snapshot_policy_30_per_minute_and_5_hourly Warning: You are changing the Snapshot policy on volume "fsxn_vol2" to "emiki_snapshot_policy_30_per_minute_and_5_hourly". Snapshot copies on this volume that do not match any of the prefixes of the new Snapshot policy will not be deleted. However, when the new Snapshot policy takes effect, depending on the new retention count, any existing Snapshot copies that continue to use the same prefixes might be deleted. See the 'volume modify' man page for more information. Do you want to continue? {y|n}: y Volume modify successful on volume fsxn_vol2 of Vserver sample-fsxn-svm. FsxId003039c51be2092f8::>
警告が出ていますが、これは「新しいスナップショットポリシーで設定されているプレフィックスと、既存のスナップショットについているプレフィックスが同じ場合、保持カウント(-count copies_to_retainX
)に応じて既存のスナップショットが削除される場合があります」という警告です。
今回はプレフィックスをカスタムで新規に設定したので、既存のスナップショットが削除されることはありません。
既存のスナップショットを残したい場合は、プレフィックスを既存のスナップショットと違うものにしてください。
スナップショットポリシーが変更できたか確認
スナップショットポリシーが変更できたか確認します。
Volume1 のスナップショットポリシー確認
- 実行コマンド
volume show -volume fsxn_vol1 -fields snapshot-policy
▼実行結果
FsxId003039c51be2092f8::> volume show -volume fsxn_vol1 -fields snapshot-policy vserver volume snapshot-policy --------------- --------- ------------------------------------------------ sample-fsxn-svm fsxn_vol1 emiki_snapshot_policy_30_per_minute_and_5_hourly FsxId003039c51be2092f8::>
Volume2 のスナップショットポリシー確認
- 実行コマンド
volume show -volume fsxn_vol2 -fields snapshot-policy
▼実行結果
FsxId003039c51be2092f8::> volume show -volume fsxn_vol2 -fields snapshot-policy vserver volume snapshot-policy --------------- --------- ------------------------------------------------ sample-fsxn-svm fsxn_vol2 emiki_snapshot_policy_30_per_minute_and_5_hourly FsxId003039c51be2092f8::>
今回の検証環境で画面取得し忘れてしまったのですが、カスタムスナップショットポリシーを設定して数分待つと、マネジメントコンソールのボリュームの詳細からカスタムスナップショットポリシー名が確認できます。
スナップショットの確認
5 時間以上経過後、取得されたスナップショット一覧を確認します。
- Volume1 のスナップショット確認コマンド
volume snapshot show -volume fsxn_vol1
▼実行結果
FsxId003039c51be2092f8::> volume snapshot show -volume fsxn_vol1 ---Blocks--- Vserver Volume Snapshot Size Total% Used% -------- -------- ------------------------------------- -------- ------ ----- sample-fsxn-svm fsxn_vol1 hourly.2023-10-03_0605 172KB 0% 2% backup-01499da8b63283255 256KB 0% 2% hourly.2023-10-03_0705 244KB 0% 2% hourly.2023-10-03_0805 140KB 0% 1% hourly.2023-10-03_0905 492KB 0% 4% emiki_10min.2023-10-03_1330 140KB 0% 1% emiki_10min.2023-10-03_1340 140KB 0% 1% emiki_10min.2023-10-03_1350 140KB 0% 1% emiki_10min.2023-10-03_1400 140KB 0% 1% emiki_hourly.2023-10-03_1405 140KB 0% 1% emiki_10min.2023-10-03_1410 140KB 0% 1% emiki_10min.2023-10-03_1420 144KB 0% 1% emiki_10min.2023-10-03_1430 144KB 0% 1% emiki_10min.2023-10-03_1440 468KB 0% 4% emiki_10min.2023-10-03_1450 148KB 0% 1% emiki_10min.2023-10-03_1500 148KB 0% 1% emiki_hourly.2023-10-03_1505 148KB 0% 1% emiki_10min.2023-10-03_1510 148KB 0% 1% emiki_10min.2023-10-03_1520 148KB 0% 1% emiki_10min.2023-10-03_1530 148KB 0% 1% emiki_10min.2023-10-03_1540 148KB 0% 1% emiki_10min.2023-10-03_1550 148KB 0% 1% emiki_10min.2023-10-03_1600 148KB 0% 1% emiki_hourly.2023-10-03_1605 144KB 0% 1% emiki_10min.2023-10-03_1610 460KB 0% 4% emiki_10min.2023-10-03_1620 144KB 0% 1% emiki_10min.2023-10-03_1630 144KB 0% 1% emiki_10min.2023-10-03_1640 144KB 0% 1% emiki_10min.2023-10-03_1650 144KB 0% 1% emiki_10min.2023-10-03_1700 144KB 0% 1% emiki_hourly.2023-10-03_1705 144KB 0% 1% emiki_10min.2023-10-03_1710 144KB 0% 1% emiki_10min.2023-10-03_1720 144KB 0% 1% emiki_10min.2023-10-03_1730 144KB 0% 1% emiki_10min.2023-10-03_1740 144KB 0% 1% emiki_10min.2023-10-03_1750 144KB 0% 1% emiki_10min.2023-10-03_1800 144KB 0% 1% emiki_hourly.2023-10-03_1805 144KB 0% 1% emiki_10min.2023-10-03_1810 496KB 0% 4% emiki_10min.2023-10-03_1820 140KB 0% 1% 40 entries were displayed. FsxId003039c51be2092f8::>
- Volume2 のスナップショット確認コマンド
volume snapshot show -volume fsxn_vol2
▼実行結果
FsxId003039c51be2092f8::> volume snapshot show -volume fsxn_vol2 ---Blocks--- Vserver Volume Snapshot Size Total% Used% -------- -------- ------------------------------------- -------- ------ ----- sample-fsxn-svm fsxn_vol2 hourly.2023-10-03_0605 176KB 0% 0% backup-05346a1e5d51ec6e8 260KB 0% 0% hourly.2023-10-03_0705 228KB 0% 0% hourly.2023-10-03_0805 144KB 0% 0% hourly.2023-10-03_0905 184KB 0% 0% emiki_10min.2023-10-03_1330 144KB 0% 0% emiki_10min.2023-10-03_1340 144KB 0% 0% emiki_10min.2023-10-03_1350 144KB 0% 0% emiki_10min.2023-10-03_1400 1.49MB 0% 2% emiki_hourly.2023-10-03_1405 144KB 0% 0% emiki_10min.2023-10-03_1410 144KB 0% 0% emiki_10min.2023-10-03_1420 144KB 0% 0% emiki_10min.2023-10-03_1430 144KB 0% 0% emiki_10min.2023-10-03_1440 144KB 0% 0% emiki_10min.2023-10-03_1450 152KB 0% 0% emiki_10min.2023-10-03_1500 152KB 0% 0% emiki_hourly.2023-10-03_1505 152KB 0% 0% emiki_10min.2023-10-03_1510 152KB 0% 0% emiki_10min.2023-10-03_1520 152KB 0% 0% emiki_10min.2023-10-03_1530 152KB 0% 0% emiki_10min.2023-10-03_1540 152KB 0% 0% emiki_10min.2023-10-03_1550 148KB 0% 0% emiki_10min.2023-10-03_1600 148KB 0% 0% emiki_hourly.2023-10-03_1605 148KB 0% 0% emiki_10min.2023-10-03_1610 148KB 0% 0% emiki_10min.2023-10-03_1620 148KB 0% 0% emiki_10min.2023-10-03_1630 148KB 0% 0% emiki_10min.2023-10-03_1640 148KB 0% 0% emiki_10min.2023-10-03_1650 148KB 0% 0% emiki_10min.2023-10-03_1700 148KB 0% 0% emiki_hourly.2023-10-03_1705 148KB 0% 0% emiki_10min.2023-10-03_1710 148KB 0% 0% emiki_10min.2023-10-03_1720 148KB 0% 0% emiki_10min.2023-10-03_1730 148KB 0% 0% emiki_10min.2023-10-03_1740 148KB 0% 0% emiki_10min.2023-10-03_1750 148KB 0% 0% emiki_10min.2023-10-03_1800 148KB 0% 0% emiki_hourly.2023-10-03_1805 152KB 0% 0% emiki_10min.2023-10-03_1810 152KB 0% 0% emiki_10min.2023-10-03_1820 148KB 0% 0% 40 entries were displayed. FsxId003039c51be2092f8::>
emiki_10min.yyyy-mm-dd_hhmm
と emiki_hourly.yyyy-mm-dd_hhmm
がカスタムスナップショットポリシーによって取得されたスナップショットです。それぞれ 30 世代、5 世代が保持されており、古いものは削除されていることが分かります。
おわりに
FSx for NetApp ONTAP でカスタムスナップショットポリシーの設定を実施しました。
ONTAP CLI を使う必要がありますが、一つのカスタムスナップショットポリシーの中に複数スケジュールを設定できるのは良いなと思いました。
FSx for NetApp ONTAP スナップショットからのリストア方法は以下のブログをご参照ください。
どなたかのお役に立てば幸いです。